#pragma once
#include "Observer.h"
#include "Singleton.h"
#include "Define.h"

namespace Next
{
	namespace Interface
	{
		using namespace Patterns;

#define MAX_LOADSTRING 100

		class CInterface : public TSingleton<CInterface>
		{
			friend class TSingleton<CInterface>;
		private:
			TCHAR		szTitle[MAX_LOADSTRING];
			TCHAR		szWindowClass[MAX_LOADSTRING];
			HWND		hWnd;
			HINSTANCE	hInst;

		private:
			ATOM					MyRegisterClass(HINSTANCE hInstance);
			BOOL					InitInstance(HINSTANCE, int);
			static INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
			
		protected:
			CInterface(void);
			~CInterface(void);
		
		public:
			int Run(HINSTANCE hInstance, int nCmdShow);
			LRESULT CALLBACK	MyWndProc(HWND, UINT, WPARAM, LPARAM);
		};
	}
}

